//
//  ZDBaseTableViewController.swift
//  1026SwiftSinaWeiBo
//
//  Created by Apple on 15/10/26.
//  Copyright © 2015年 itcast. All rights reserved.
//

import UIKit

class ZDBaseTableViewController: UITableViewController{
    
    //定义一个属性 记录用户的登录状态
    var isLogin = ZDAccount.isLogin
    
    
    //MARK: - 重写loadView方法 
    override func loadView() {
        
//        if isLogin {
//        
//            super.loadView()   //如果用户登录  就显示tableView
//        }
//        else
//        {
//            view = ZDVisitorView()  //如果用户没有登录 就显示提示登录界面
//        }
        
        isLogin ? super.loadView() : setupVisitorView()
        
    }
    
    //MARK: - 创建访客视图
    func setupVisitorView() {
    
        let visitorView = ZDVisitorView()
        
        view = visitorView
        
        //指定代理
        visitorView.visitorViewDelegate = self
        
//        print(self)
        
        //判断控制器
        if self is ZDHomeViewController {
        
            //开始旋转
            visitorView.startRotation()
            
            //应用程序进入后台时发布通知
            //控制器注册通知中心 监听通知
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "applicationDidEnterBackground", name: UIApplicationDidEnterBackgroundNotification, object: nil)
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "applicationDidBecomeActive", name: UIApplicationDidBecomeActiveNotification, object: nil)
            
        }else if self is ZDMessageViewController {     //如果是ZDMessageViewController
            
            visitorView.setupVisitorView("visitordiscover_image_message", title: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        }else if self is ZDDiscoveryViewController {
            
            visitorView.setupVisitorView("visitordiscover_image_message", title: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        }else if self is ZDProfileViewController {
            
            visitorView.setupVisitorView("visitordiscover_image_profile", title: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        //添加导航按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Done, target: self, action: "VisitorViewRegisterButtonClick")
        
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Done, target: self, action: "VisitorViewLoginButtonClick")
        
//        //设置导航条的主题颜色 ———— 默认是渲染成蓝色 ———— 这里设置，第一次进入时首页控制器设置无效
//        UINavigationBar.appearance().tintColor = UIColor.orangeColor()

    }

    override func viewDidLoad() {
        super.viewDidLoad()

        
    }
    
    //MARK: - 注销通知
    deinit {
    
        if self is ZDHomeViewController {
        
            NSNotificationCenter.defaultCenter().removeObserver(self)
        }
    }
    
    //MARK: - 监听应用程序进入后台 前台通知回调
    func applicationDidEnterBackground() {
        
        //调用visitorView的方法  暂停旋转
        (view as? ZDVisitorView)?.pauseAnimation()
    }
    
    func applicationDidBecomeActive() {
        
        //调用visitorView的方法  开启旋转
        (view as? ZDVisitorView)?.resumeAnimation()
    }
    
}


//MARK: - 定义当前类的延展 专门管理 ZDVisitorViewDelegate 代理方法
extension ZDBaseTableViewController: ZDVisitorViewDelegate {

    //MARK: - 实现代理方法
    func VisitorViewRegisterButtonClick() {

        print(__FUNCTION__)
    }

    func VisitorViewLoginButtonClick() {

//        print(__FUNCTION__)
        
        let vc = ZDOAuthViewController()
        
        presentViewController(UINavigationController(rootViewController: vc), animated: true, completion: nil)
    }
}
